package com.bdzl.auth.service;

import com.bdzl.pub.entity.sys.UserDO;
import com.bdzl.pub.util.param.R;
import com.bdzl.pub.vo.sys.UserVO;

import java.util.List;
import java.util.Map;

/**
 * 系统用户/客户账号表
 *
 * @author yangyicai
 * @email yangyicai@foxmail.com
 * @date 2021-03-23 13:59:22
 */

public interface UserService  {

	UserDO get(Integer userId);

	List<UserDO> list(Map<String, Object> map);

	int count(Map<String, Object> map);

	int save(UserDO user);

	/**
	 * @Author Zhn
	 * @Description //TODO 保存用户以及保存用户角色关系表
	 * @Date 15:31 2021/5/20
	 * @Param [user]
	 * @return com.bdzl.pub.util.param.R
	 **/
	R saveUserDO(UserVO user);

	int update(UserDO user);

	/**
	 * @Author Zhn
	 * @Description //TODO 修改用户以及用户角色关系表
	 * @Date 15:31 2021/5/20
	 * @Param [user]
	 * @return com.bdzl.pub.util.param.R
	 **/
	R updateUserDO(UserVO user);

	int remove(Integer userId);

	int batchRemove(Integer[] userIds);

	/**
	 * 校验用户是否有效
	 * @param user 用户信息
	 * @return
	 */
	R checkUserIsEffective(UserDO user);
	/**
	* @Description: TODO 根据登录账户查询用户
	* @param userLgname 登录账户
	* @return: com.bdzl.pub.entity.sys.UserDO
	* @Author: Ming
	* @Date: 2021/4/28 9:31
	*/
	UserDO getByUserLgname(String userLgname);

	/**
	 * @Author Zhn
	 * @Description //TODO 根据小程序openid获取用户
	 * @Date 14:02 2021/5/11
	 * @Param [userOpenid]
	 * @return com.bdzl.pub.entity.sys.UserDO
	 **/
	List<UserDO> getByUserOpenid(String userOpenid);

	/**
	 * @Description: TODO 查询家访员
	 * @param
	 * @return: java.util.List<com.bdzl.pub.entity.sys.UserDO>
	 * @Author: Ming
	 * @Date: 2021/5/25 18:18
	 */
	List<UserDO> getHomeVisit();
}
